Background Information
Many storage hard disk drives designed for use in computer systems today utilize an IDE standard interface. The IDE interface has proven very cost effective and has grown to wide acceptance in the PC motherboard industry. The IDE standard provides allows for most of the controller electronics that were previously found on a controller card be located at the hard disk mechanism and in the chipset. Since the IDE interface can be placed on the motherboard, because of its relatively simple electronics, a controller card is not needed, and hence an expansion slot is saved for other use.
For many years, operating systems accessed fixed media disk drives by specifying the Cylinder, Head and Sector to retrieve the desired data from the disk. Because of this, the Int 13h Hard Disk Interface standardized around this type of protocol. When IDE compatible drives were first introduced, this protocol was maintained. At its most primitive level, data on an IDE compatible drive is accessed according to Logical Blocks instead of the traditional Cylinder-Head-Sector (CHS) method, even though the IDE Task File (the register level interface between the Drive and Host) is specified in the CHS format.
Combining the limitations of the Int 13h Application Programming Interface with those of the IDE Task File, in the past, only a maximum of 528 Mb of data can be accessed in a single IDE device. Because of advances in Hard Disk technology, drives of greater than 528 Mb are now becoming cost effective and new methods of Data Addressing are required. The Hard Disk Driver developed by Intel Corporation supports three standard Data Addressing Modes: cylinder-head-sector (CHS) mode, extended cylinder-head-sector (ECHS) mode, and logical block addressing (LBA) mode.
Cylinder-Head-Sector: The standard CHS mode is available for use on all drives and is compatible with all Operating Systems. In this mode up to a maximum of 16 heads, 1023 Cylinders and 63 Sectors may be specified. If a drive supports more than 1023 Cylinders, the amount usable is limited to 1023. Using this addressing mode up to 528 Mb of data is available. Since data is arranged on the disk using a linear addressing scheme rather than the CHS parameters, the drive firmware performs this translation.
Extended Cylinder-Head-Sector: The ECHS translation mode is used for drives that have capacities larger than 528 Mb but do not support the Logical Block Addressing mode (LBA). Though this translation method is not widely accepted in the industry it will work for most DOS and MICROSOFT WINDOWS applications. Using this translation method the number of Cylinders are reduced and the number of Heads are increased until the Cylinder count is below 1024. This method will not work effectively for drives much larger that 528 M and if the two least significant bits of the cylinder number are not zero, then some drive capacity may be lost in the parameter translation. Sectors that are lost because of inefficiencies in the translation algorithm are called Orphan Sectors.
Logical Block Addressing: In LBA mode, the location of data on the disk is specified using a 28-bit or 48-bit Logical Block Address. The 28-bit LBA corresponds with the drives linear addressing scheme allowing the Host to bypass the drive firmware's translation code. This is fast becoming the most widely used addressing mechanism going forward. This allows for faster disk accesses and up to 8.4 G of data is available. This method also allows the number of Orphan Sectors to be reduced to zero.
With respect to 48-bit LBA IDE storage drives, as they get larger, it becomes time consuming to set up the IDE compatible drives for a particular data transfer to/from the host to IDE devices. For example, the 48-bit LBA mechanism requires two sets of I/O writes to IDE registers. A more efficient mechanism for handling of 48-bit LBA drives and their transfers is thus desirable.